package com.dys.testmethodreference10;

import java.util.function.Consumer;

/**
 * @className: com.dys.testmethodreference10.MethodReference
 * @description: 方法引用
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/31 下午11:24
 */
public class MethodReference {

    // 求和
    public static void printSum(Consumer<int[]> c) {
        int[] arr = {10, 20, 30, 40, 50};
        c.accept(arr);
    }

    /**
     * 求数组中所有元素之和
     */
    public static void getSum(int[] arr) {
        int sum = 0;
        for (int i : arr) {
            sum += i;
        }
        System.out.println("数组元素之和：" + sum);
    }

    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        printSum(c -> {
            // Lambda表达式中的代码和 getSum 中的代码冗余了
            int sum = 0;
            for (int i : c) {
                sum += i;
            }
            System.out.println("数组元素之和：" + sum);
        });
    }
}
